package com.ww.java8.fp.stream.onjava8.ch14;

import java.util.stream.Stream;

/**
 * flatMap()做了两件事：将产生流的函数应用在每个元素上（与map()所做的相同），然后将每个流都扁平化为元素，因而最终产生的仅仅是元素
 */
public class FlatMapDemo {

    public static void main(String[] args) {
        // Stream<Integer>
        Stream.of(1, 2, 3)
                // Stream<Stream<String>>
                .map(i -> Stream.of("Gonzo", "Kermit", "BeanKer"))
                // Stream<String>
                .map(e -> e.getClass().getName())
                .forEach(System.out::println);

        // Stream<Integer>
        Stream.of(1, 2, 3)
                // Stream<String>
                .flatMap(i -> Stream.of("Gonzo", "Kermit", "BeanKer"))
                .forEach(System.out::println);
    }
}
